[INFO] cloning repository https://github.com/AlexanderChen1989/grpc-lb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AlexanderChen1989/grpc-lb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexanderChen1989%2Fgrpc-lb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexanderChen1989%2Fgrpc-lb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9159021d1833a51264fba3262da48971e02b2fa3
[INFO] fixing AlexanderChen1989/grpc-lb against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexanderChen1989%2Fgrpc-lb" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AlexanderChen1989/grpc-lb
[INFO] finished tweaking git repo https://github.com/AlexanderChen1989/grpc-lb
[INFO] tweaked toml for git repo https://github.com/AlexanderChen1989/grpc-lb written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AlexanderChen1989/grpc-lb on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AlexanderChen1989/grpc-lb already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0
[INFO] running `Command { std: "docker" "start" "875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.37
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.91
[INFO] [stderr]    Compiling libc v0.2.123
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling log v0.4.16
[INFO] [stderr]     Checking pin-project-lite v0.2.8
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]     Checking once_cell v1.10.0
[INFO] [stderr]     Checking bytes v1.1.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.2
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling indexmap v1.8.1
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]     Checking futures-io v0.3.21
[INFO] [stderr]     Checking slab v0.4.6
[INFO] [stderr]     Checking tracing-core v0.1.26
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]     Checking itoa v1.0.1
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling anyhow v1.0.57
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking matches v0.1.9
[INFO] [stderr]     Checking http v0.2.6
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking tower-service v0.3.1
[INFO] [stderr]    Compiling itertools v0.10.3
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling async-trait v0.1.53
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]    Compiling httparse v1.7.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]     Checking try-lock v0.2.3
[INFO] [stderr]    Compiling openssl-sys v0.9.72
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking tinyvec_macros v0.1.0
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking socket2 v0.4.4
[INFO] [stderr]     Checking mio v0.8.2
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]     Checking tinyvec v1.5.1
[INFO] [stderr]    Compiling which v4.2.5
[INFO] [stderr]     Checking parking_lot v0.12.0
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]    Compiling cmake v0.1.48
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]     Checking httpdate v1.0.2
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling fastrand v1.7.0
[INFO] [stderr]    Compiling openssl v0.10.38
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]     Checking unicode-bidi v0.3.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling os_str_bytes v6.0.0
[INFO] [stderr]     Checking ryu v1.0.9
[INFO] [stderr]    Compiling fixedbitset v0.4.1
[INFO] [stderr]    Compiling serde_json v1.0.79
[INFO] [stderr]    Compiling native-tls v0.2.10
[INFO] [stderr]    Compiling prost-build v0.10.1
[INFO] [stderr]    Compiling tempfile v3.3.0
[INFO] [stderr]    Compiling clap_lex v0.1.1
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling textwrap v0.15.0
[INFO] [stderr]    Compiling petgraph v0.6.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]     Checking tower-layer v0.3.1
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]     Checking mime v0.3.16
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling cbindgen v0.23.0
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking ipnet v2.5.0
[INFO] [stderr]    Compiling clap v3.1.9
[INFO] [stderr]     Checking match_cfg v0.1.0
[INFO] [stderr]    Compiling encoding_rs v0.8.31
[INFO] [stderr]     Checking http-range-header v0.3.0
[INFO] [stderr]     Checking unicode-normalization v0.1.19
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking crossbeam-channel v0.4.4
[INFO] [stderr]     Checking hostname v0.3.1
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking base64 v0.13.0
[INFO] [stderr]     Checking linked-hash-map v0.5.4
[INFO] [stderr]     Checking sync_wrapper v0.1.1
[INFO] [stderr]     Checking data-encoding v2.3.2
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking http-body v0.4.4
[INFO] [stderr]     Checking matchit v0.5.0
[INFO] [stderr]     Checking resolv-conf v0.7.0
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking tracing-log v0.1.3
[INFO] [stderr]     Checking spin v0.9.3
[INFO] [stderr]     Checking thread_local v1.1.4
[INFO] [stderr]     Checking crossbeam v0.7.3
[INFO] [stderr]     Checking sharded-slab v0.1.4
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking regex v1.5.5
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]    Compiling prettyplease v0.1.9
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.20
[INFO] [stderr]    Compiling prost-derive v0.10.1
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling async-stream-impl v0.3.3
[INFO] [stderr]    Compiling enum-as-inner v0.4.0
[INFO] [stderr]     Checking tokio v1.17.0
[INFO] [stderr]     Checking async-stream v0.3.3
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking tracing v0.1.34
[INFO] [stderr]     Checking pin-project v1.0.10
[INFO] [stderr]     Checking flume v0.10.12
[INFO] [stderr]    Compiling prost v0.10.1
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking tracing-subscriber v0.3.11
[INFO] [stderr]    Compiling prost-types v0.10.1
[INFO] [stderr]    Compiling tonic-build v0.7.0
[INFO] [stderr]     Checking axum-core v0.2.2
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]     Checking crossfire v0.1.7
[INFO] [stderr]     Checking tokio-util v0.7.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking tokio-io-timeout v1.2.0
[INFO] [stderr]     Checking tokio-stream v0.1.8
[INFO] [stderr]     Checking trust-dns-proto v0.21.2
[INFO] [stderr]     Checking h2 v0.3.13
[INFO] [stderr]     Checking tower v0.4.12
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking tower-http v0.2.5
[INFO] [stderr]     Checking trust-dns-resolver v0.21.2
[INFO] [stderr]    Compiling toml v0.5.9
[INFO] [stderr]     Checking hyper v0.14.18
[INFO] [stderr]    Compiling nice v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking axum v0.5.3
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.10
[INFO] [stderr]     Checking tonic v0.7.1
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/lib.rs (9 fixes)
[INFO] [stderr]    Migrating src/bin/http_server.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/test.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/dns.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/server4.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server4.rs:133:57
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 if let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                             ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                             |           |                   |
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                             |           |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                             |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                             |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             `res_tx` calls a custom destructor
[INFO] [stdout]     |                                             `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 137 |                     sleep(100).await;
[INFO] [stdout]     |                     ----------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 138 |                     let _ = res_tx.send_async(res).await;
[INFO] [stdout]     |                             ----------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 139 |                 }
[INFO] [stdout] 140 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/server2.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server2.rs:121:56
[INFO] [stdout]     |
[INFO] [stdout] 121 |             while let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                            ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                            |           |                   |
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                            |           |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                            |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                            |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            `res_tx` calls a custom destructor
[INFO] [stdout]     |                                            `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 125 |                 res_tx.send_async(res).await.unwrap();
[INFO] [stdout]     |                 ----------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 126 |                 let d = time::Duration::from_millis(idx as u64 * 2);
[INFO] [stdout] 127 |                 time::sleep(d).await;
[INFO] [stdout]     |                 --------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 128 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server2.rs:121:56
[INFO] [stdout]     |
[INFO] [stdout] 121 |             while let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                            ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                            |           |                   |
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                            |           |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                            |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                            |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            `res_tx` calls a custom destructor
[INFO] [stdout]     |                                            `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 125 |                 res_tx.send_async(res).await.unwrap();
[INFO] [stdout]     |                 ----------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 126 |                 let d = time::Duration::from_millis(idx as u64 * 2);
[INFO] [stdout] 127 |                 time::sleep(d).await;
[INFO] [stdout]     |                 --------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 128 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/client5.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/client2.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client5.rs:186:36
[INFO] [stdout]     |
[INFO] [stdout] 186 |             while let Ok(change) = change_rx.recv() {
[INFO] [stdout]     |                          ------    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |         |
[INFO] [stdout]     |                          |         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                          |         up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          `change` calls a custom destructor
[INFO] [stdout]     |                          `change` will be dropped later as of Edition 2024
[INFO] [stdout] 187 |                 match change {
[INFO] [stdout] 188 |                     Change::Insert(key, endpoint) => match HelloChannel::connect(&rt, endpoint) {
[INFO] [stdout]     |                                                            ------------------------------------
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 189 |                         Ok(chan) => {
[INFO] [stdout] 190 |                             chans.write().unwrap().add_chan(key, chan);
[INFO] [stdout]     |                             ----------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 191 |                         }
[INFO] [stdout] 192 |                         Err(e) => {
[INFO] [stdout]     |                             -
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `e` calls a custom destructor
[INFO] [stdout]     |                             `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 197 |                         chans.write().unwrap().remove_chan(key);
[INFO] [stdout]     |                         ----------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 200 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `change` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `change` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/server.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server.rs:196:33
[INFO] [stdout]     |
[INFO] [stdout] 196 |             while let Ok(req) = req_rx.recv_async().await {
[INFO] [stdout]     |                          ---    ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                          |      |                   |
[INFO] [stdout]     |                          |      |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                          |      |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          |      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                          |      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                          |      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                          |      up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                          |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                          `req` calls a custom destructor
[INFO] [stdout]     |                          `req` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 199 |                 time::sleep(time::Duration::from_secs(1)).await;
[INFO] [stdout]     |                 -----------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 200 |                 let _ = req.res_tx.send_async(res).await;
[INFO] [stdout]     |                         --------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 201 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `req` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/server3.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server3.rs:137:56
[INFO] [stdout]     |
[INFO] [stdout] 137 |             while let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                            ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                            |           |                   |
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                            |           |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                            |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                            |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            `res_tx` calls a custom destructor
[INFO] [stdout]     |                                            `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 |                 res_tx.send_async(res).await.unwrap();
[INFO] [stdout]     |                 ----------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 142 |                 let d = time::Duration::from_millis(idx as u64 * 2);
[INFO] [stdout] 143 |                 time::sleep(d).await;
[INFO] [stdout]     |                 --------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 144 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/channel.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/http_client.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/channel.rs:31:53
[INFO] [stdout]     |
[INFO] [stdout]  31 |                 while let Ok(msg) = rx.recv_async().await {
[INFO] [stdout]     |                                     ----------------^^^^^
[INFO] [stdout]     |                                     |               |
[INFO] [stdout]     |                                     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  32 |                     println!(">>> worker {id} => {msg:?}");
[INFO] [stdout]  33 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/channel.rs:37:48
[INFO] [stdout]     |
[INFO] [stdout]  37 |         while let Ok(_) = done_rx.recv_async().await {}
[INFO] [stdout]     |                           ---------------------^^^^^  - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |                           |                    |
[INFO] [stdout]     |                           |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           |                    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/client4.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/bin/client4.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client4.rs:111:36
[INFO] [stdout]     |
[INFO] [stdout] 111 |               while let Ok(change) = change_rx.recv_async().await {
[INFO] [stdout]     |                            ------    ^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |         |                      |
[INFO] [stdout]     |                            |         |                      this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                            |         |                      up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |         |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |         |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                            |         up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |         `__awaitee` calls a custom destructor
[INFO] [stdout]     |                            |         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `change` calls a custom destructor
[INFO] [stdout]     |                            `change` will be dropped later as of Edition 2024
[INFO] [stdout] 112 |                   match change {
[INFO] [stdout] 113 |                       Change::Insert(key, endpoint) => match endpoint.connect().await {
[INFO] [stdout]     |                                           --------           ------------------------
[INFO] [stdout]     |                                           |                  |                  |
[INFO] [stdout]     |                                           |                  |                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                           |                  |                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                           |                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           |                  `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           `endpoint` calls a custom destructor
[INFO] [stdout]     |                                           `endpoint` will be dropped later as of Edition 2024
[INFO] [stdout] 114 |                           Ok(chan) => {
[INFO] [stdout]     |                              ----
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `chan` calls a custom destructor
[INFO] [stdout]     |                              `chan` will be dropped later as of Edition 2024
[INFO] [stdout] 115 |                               keys.write().await.insert(key.clone());
[INFO] [stdout]     |                               ------------------
[INFO] [stdout]     |                               |            |
[INFO] [stdout]     |                               |            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                               |            `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                               `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                               `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 116 |                               for _ in 0..10 {
[INFO] [stdout] 117 | /                                 chan_tx
[INFO] [stdout] 118 | |                                     .send_async(KeyChannel {
[INFO] [stdout] 119 | |                                         key: key.clone(),
[INFO] [stdout] 120 | |                                         chan: chan.clone(),
[INFO] [stdout] 121 | |                                     })
[INFO] [stdout] 122 | |                                     .await
[INFO] [stdout]     | |                                      -----
[INFO] [stdout]     | |                                      |   |
[INFO] [stdout]     | |______________________________________|___this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                        |   `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                        `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 126 |                           Err(e) => {
[INFO] [stdout]     |                               -
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `e` calls a custom destructor
[INFO] [stdout]     |                               `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 131 |                           keys.write().await.remove(&key);
[INFO] [stdout]     |                           ------------------
[INFO] [stdout]     |                           |            |
[INFO] [stdout]     |                           |            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                           |            `#12` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                           `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 |               }
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `change` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `change` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `endpoint` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `endpoint` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `chan` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `chan` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client4.rs:159:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |             rt,
[INFO] [stdout]     |             --
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `rt` calls a custom destructor
[INFO] [stdout]     |             `rt` will be dropped later as of Edition 2024
[INFO] [stdout] 153 |             chan_tx,
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `chan_tx` calls a custom destructor
[INFO] [stdout]     |             `chan_tx` will be dropped later as of Edition 2024
[INFO] [stdout] 154 |             chan_rx,
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `chan_rx` calls a custom destructor
[INFO] [stdout]     |             `chan_rx` will be dropped later as of Edition 2024
[INFO] [stdout] 155 |             ready_chan_tx,
[INFO] [stdout]     |             -------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `ready_chan_tx` calls a custom destructor
[INFO] [stdout]     |             `ready_chan_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 159 |         match chan_rx.try_recv() { Ok(mut chan) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rt` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/runtime/mod.rs:590:5
[INFO] [stdout]     |
[INFO] [stdout] 590 |     impl Drop for Runtime {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan_rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:871:1
[INFO] [stdout]     |
[INFO] [stdout] 871 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ready_chan_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server3.rs:137:56
[INFO] [stdout]     |
[INFO] [stdout] 137 |             while let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                            ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                            |           |                   |
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                            |           |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                            |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                            |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                            |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                            `res_tx` calls a custom destructor
[INFO] [stdout]     |                                            `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 |                 res_tx.send_async(res).await.unwrap();
[INFO] [stdout]     |                 ----------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 142 |                 let d = time::Duration::from_millis(idx as u64 * 2);
[INFO] [stdout] 143 |                 time::sleep(d).await;
[INFO] [stdout]     |                 --------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 144 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/client.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/channel.rs:31:53
[INFO] [stdout]     |
[INFO] [stdout]  31 |                 while let Ok(msg) = rx.recv_async().await {
[INFO] [stdout]     |                                     ----------------^^^^^
[INFO] [stdout]     |                                     |               |
[INFO] [stdout]     |                                     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  32 |                     println!(">>> worker {id} => {msg:?}");
[INFO] [stdout]  33 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/channel.rs:37:48
[INFO] [stdout]     |
[INFO] [stdout]  37 |         while let Ok(_) = done_rx.recv_async().await {}
[INFO] [stdout]     |                           ---------------------^^^^^  - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |                           |                    |
[INFO] [stdout]     |                           |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           |                    up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/client3.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client3.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |             while let Ok(change) = change_rx.recv() {
[INFO] [stdout]     |                          ------    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |         |
[INFO] [stdout]     |                          |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                          |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          `change` calls a custom destructor
[INFO] [stdout]     |                          `change` will be dropped later as of Edition 2024
[INFO] [stdout] 140 |                 match change {
[INFO] [stdout] 141 |                     Change::Insert(k, endpoint) => {
[INFO] [stdout]     |                                    -
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `k` calls a custom destructor
[INFO] [stdout]     |                                    `k` will be dropped later as of Edition 2024
[INFO] [stdout] 142 |                         let res = connect(rt.clone(), endpoint);
[INFO] [stdout]     |                             ---
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `res` calls a custom destructor
[INFO] [stdout]     |                             `res` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 let mut chs = chs.write().unwrap();
[INFO] [stdout]     |                                     -------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `chs` calls a custom destructor
[INFO] [stdout]     |                                     `chs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 |                             Err(e) => {
[INFO] [stdout]     |                                 -
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `e` calls a custom destructor
[INFO] [stdout]     |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 158 |                     Change::Remove(key) => {
[INFO] [stdout]     |                                    ---
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `key` calls a custom destructor
[INFO] [stdout]     |                                    `key` will be dropped later as of Edition 2024
[INFO] [stdout] 159 |                         let mut chs = chs.write().unwrap();
[INFO] [stdout]     |                             -------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 164 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `change` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `change` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `res` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chs` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client3.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let mut ch = {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `ch` calls a custom destructor
[INFO] [stdout]     |             `ch` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 189 |         match ch.poll_ready(cx) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 196 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `ch` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `ch` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ch` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ch` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client3.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |             while let Ok(change) = change_rx.recv() {
[INFO] [stdout]     |                          ------    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |         |
[INFO] [stdout]     |                          |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                          |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          `change` calls a custom destructor
[INFO] [stdout]     |                          `change` will be dropped later as of Edition 2024
[INFO] [stdout] 140 |                 match change {
[INFO] [stdout] 141 |                     Change::Insert(k, endpoint) => {
[INFO] [stdout]     |                                    -
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `k` calls a custom destructor
[INFO] [stdout]     |                                    `k` will be dropped later as of Edition 2024
[INFO] [stdout] 142 |                         let res = connect(rt.clone(), endpoint);
[INFO] [stdout]     |                             ---
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `res` calls a custom destructor
[INFO] [stdout]     |                             `res` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 |                                 let mut chs = chs.write().unwrap();
[INFO] [stdout]     |                                     -------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `chs` calls a custom destructor
[INFO] [stdout]     |                                     `chs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 |                             Err(e) => {
[INFO] [stdout]     |                                 -
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `e` calls a custom destructor
[INFO] [stdout]     |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 158 |                     Change::Remove(key) => {
[INFO] [stdout]     |                                    ---
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `key` calls a custom destructor
[INFO] [stdout]     |                                    `key` will be dropped later as of Edition 2024
[INFO] [stdout] 159 |                         let mut chs = chs.write().unwrap();
[INFO] [stdout]     |                             -------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 164 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `change` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `change` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `res` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chs` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client3.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let mut ch = {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `ch` calls a custom destructor
[INFO] [stdout]     |             `ch` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 189 |         match ch.poll_ready(cx) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 196 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `ch` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `ch` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ch` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ch` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/server5.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client5.rs:186:36
[INFO] [stdout]     |
[INFO] [stdout] 186 |             while let Ok(change) = change_rx.recv() {
[INFO] [stdout]     |                          ------    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |         |
[INFO] [stdout]     |                          |         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                          |         up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          `change` calls a custom destructor
[INFO] [stdout]     |                          `change` will be dropped later as of Edition 2024
[INFO] [stdout] 187 |                 match change {
[INFO] [stdout] 188 |                     Change::Insert(key, endpoint) => match HelloChannel::connect(&rt, endpoint) {
[INFO] [stdout]     |                                                            ------------------------------------
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 189 |                         Ok(chan) => {
[INFO] [stdout] 190 |                             chans.write().unwrap().add_chan(key, chan);
[INFO] [stdout]     |                             ----------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 191 |                         }
[INFO] [stdout] 192 |                         Err(e) => {
[INFO] [stdout]     |                             -
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `e` calls a custom destructor
[INFO] [stdout]     |                             `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 197 |                         chans.write().unwrap().remove_chan(key);
[INFO] [stdout]     |                         ----------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 200 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `change` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `change` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/rwlock.rs:1128:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server5.rs:133:57
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 if let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                             ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                             |           |                   |
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                             |           |                   up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             |           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                             |           up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                             |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             `res_tx` calls a custom destructor
[INFO] [stdout]     |                                             `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 138 |                         sleep(300).await;
[INFO] [stdout]     |                         ----------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 139 |                     } else {
[INFO] [stdout] 140 |                         sleep(100).await;
[INFO] [stdout]     |                         ----------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 141 |                     }
[INFO] [stdout] 142 |                     let _ = res_tx.send_async(res).await;
[INFO] [stdout]     |                             ----------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 143 |                 }
[INFO] [stdout] 144 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client4.rs:111:36
[INFO] [stdout]     |
[INFO] [stdout] 111 |               while let Ok(change) = change_rx.recv_async().await {
[INFO] [stdout]     |                            ------    ^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |         |                      |
[INFO] [stdout]     |                            |         |                      this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                            |         |                      up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |         |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |         |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                            |         up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |         `__awaitee` calls a custom destructor
[INFO] [stdout]     |                            |         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `change` calls a custom destructor
[INFO] [stdout]     |                            `change` will be dropped later as of Edition 2024
[INFO] [stdout] 112 |                   match change {
[INFO] [stdout] 113 |                       Change::Insert(key, endpoint) => match endpoint.connect().await {
[INFO] [stdout]     |                                           --------           ------------------------
[INFO] [stdout]     |                                           |                  |                  |
[INFO] [stdout]     |                                           |                  |                  this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                           |                  |                  `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                           |                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           |                  this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           |                  `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           `endpoint` calls a custom destructor
[INFO] [stdout]     |                                           `endpoint` will be dropped later as of Edition 2024
[INFO] [stdout] 114 |                           Ok(chan) => {
[INFO] [stdout]     |                              ----
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `chan` calls a custom destructor
[INFO] [stdout]     |                              `chan` will be dropped later as of Edition 2024
[INFO] [stdout] 115 |                               keys.write().await.insert(key.clone());
[INFO] [stdout]     |                               ------------------
[INFO] [stdout]     |                               |            |
[INFO] [stdout]     |                               |            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                               |            `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                               `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                               `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 116 |                               for _ in 0..10 {
[INFO] [stdout] 117 | /                                 chan_tx
[INFO] [stdout] 118 | |                                     .send_async(KeyChannel {
[INFO] [stdout] 119 | |                                         key: key.clone(),
[INFO] [stdout] 120 | |                                         chan: chan.clone(),
[INFO] [stdout] 121 | |                                     })
[INFO] [stdout] 122 | |                                     .await
[INFO] [stdout]     | |                                      -----
[INFO] [stdout]     | |                                      |   |
[INFO] [stdout]     | |______________________________________|___this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                        |   `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                        `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 126 |                           Err(e) => {
[INFO] [stdout]     |                               -
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `e` calls a custom destructor
[INFO] [stdout]     |                               `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 131 |                           keys.write().await.remove(&key);
[INFO] [stdout]     |                           ------------------
[INFO] [stdout]     |                           |            |
[INFO] [stdout]     |                           |            this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                           |            `#12` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                           `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 |               }
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `change` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `change` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `endpoint` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `endpoint` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `chan` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `chan` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/rwlock/write_guard.rs:269:1
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/client4.rs:159:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |             rt,
[INFO] [stdout]     |             --
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `rt` calls a custom destructor
[INFO] [stdout]     |             `rt` will be dropped later as of Edition 2024
[INFO] [stdout] 153 |             chan_tx,
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `chan_tx` calls a custom destructor
[INFO] [stdout]     |             `chan_tx` will be dropped later as of Edition 2024
[INFO] [stdout] 154 |             chan_rx,
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `chan_rx` calls a custom destructor
[INFO] [stdout]     |             `chan_rx` will be dropped later as of Edition 2024
[INFO] [stdout] 155 |             ready_chan_tx,
[INFO] [stdout]     |             -------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `ready_chan_tx` calls a custom destructor
[INFO] [stdout]     |             `ready_chan_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 159 |         match chan_rx.try_recv() { Ok(mut chan) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/semaphore.rs:640:1
[INFO] [stdout]     |
[INFO] [stdout] 640 | impl Drop for OwnedSemaphorePermit {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.1/src/sync/reusable_box.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl<T> Drop for ReusableBoxFuture<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/sync/mpsc/chan.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rt` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/runtime/mod.rs:590:5
[INFO] [stdout]     |
[INFO] [stdout] 590 |     impl Drop for Runtime {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chan_rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:871:1
[INFO] [stdout]     |
[INFO] [stdout] 871 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ready_chan_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server5.rs:133:57
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 if let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                             ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                             |           |                   |
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                             |           |                   up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             |           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                             |           up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                             |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             `res_tx` calls a custom destructor
[INFO] [stdout]     |                                             `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 138 |                         sleep(300).await;
[INFO] [stdout]     |                         ----------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 139 |                     } else {
[INFO] [stdout] 140 |                         sleep(100).await;
[INFO] [stdout]     |                         ----------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 141 |                     }
[INFO] [stdout] 142 |                     let _ = res_tx.send_async(res).await;
[INFO] [stdout]     |                             ----------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 143 |                 }
[INFO] [stdout] 144 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server.rs:196:33
[INFO] [stdout]     |
[INFO] [stdout] 196 |             while let Ok(req) = req_rx.recv_async().await {
[INFO] [stdout]     |                          ---    ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                          |      |                   |
[INFO] [stdout]     |                          |      |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                          |      |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          |      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                          |      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                          |      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                          |      up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                          |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                          |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                          `req` calls a custom destructor
[INFO] [stdout]     |                          `req` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 199 |                 time::sleep(time::Duration::from_secs(1)).await;
[INFO] [stdout]     |                 -----------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 200 |                 let _ = req.res_tx.send_async(res).await;
[INFO] [stdout]     |                         --------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 201 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `req` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.17.0/src/time/driver/entry.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/bin/server4.rs:133:57
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 if let Ok(Request { req: _, res_tx }) = req_rx.recv_async().await {
[INFO] [stdout]     |                                             ------      ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                             |           |                   |
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                             |           |                   up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             |           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                             |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                             |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                             |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             `res_tx` calls a custom destructor
[INFO] [stdout]     |                                             `res_tx` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 137 |                     sleep(100).await;
[INFO] [stdout]     |                     ----------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 138 |                     let _ = res_tx.send_async(res).await;
[INFO] [stdout]     |                             ----------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 139 |                 }
[INFO] [stdout] 140 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:447:1
[INFO] [stdout]     |
[INFO] [stdout] 447 | impl<'a, T> Drop for RecvFut<'a, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res_tx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/lib.rs:744:1
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.10.12/src/async.rs:133:15
[INFO] [stdout]     |
[INFO] [stdout] 133 | #[pin_project(PinnedDrop)]
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.87s
[INFO] [stderr] crater-edition-check: nice v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling nice v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] error: failed to run custom build command for `nice v0.1.0 (/opt/rustwide/workdir)`
[INFO] [stderr] note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/build/nice-761685abbe292db1/build-script-build` (exit status: 101)
[INFO] [stderr]   --- stderr
[INFO] [stderr] 
[INFO] [stderr]   thread 'main' (2767) panicked at build.rs:10:10:
[INFO] [stderr]   Unable to generate bindings: ParseSyntaxError { crate_name: "nice", src_path: "/opt/rustwide/workdir/src/lib.rs", error: Error("expected path") }
[INFO] [stderr]   stack backtrace:
[INFO] [stderr]      0:     0x65337d06b4b8 - std[5c0eaf5403f5fa91]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stderr]      1:     0x65337d06b4b8 - std[5c0eaf5403f5fa91]::backtrace_rs::backtrace::trace_unsynchronized::<std[5c0eaf5403f5fa91]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stderr]      2:     0x65337d06b4b8 - std[5c0eaf5403f5fa91]::sys::backtrace::_print_fmt
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/backtrace.rs:74:9
[INFO] [stderr]      3:     0x65337d06b4b8 - <<std[5c0eaf5403f5fa91]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6b4415987d471b61]::fmt::Display>::fmt
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/backtrace.rs:44:26
[INFO] [stderr]      4:     0x65337d08207a - <core[6b4415987d471b61]::fmt::rt::Argument>::fmt
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/fmt/rt.rs:152:76
[INFO] [stderr]      5:     0x65337d08207a - core[6b4415987d471b61]::fmt::write
[INFO] [stderr]      6:     0x65337d0712c2 - std[5c0eaf5403f5fa91]::io::default_write_fmt::<std[5c0eaf5403f5fa91]::sys::stdio::unix::Stderr>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/io/mod.rs:623:11
[INFO] [stderr]      7:     0x65337d0712c2 - <std[5c0eaf5403f5fa91]::sys::stdio::unix::Stderr as std[5c0eaf5403f5fa91]::io::Write>::write_fmt
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/io/mod.rs:1661:13
[INFO] [stderr]      8:     0x65337d04cb86 - <std[5c0eaf5403f5fa91]::sys::backtrace::BacktraceLock>::print
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/backtrace.rs:47:9
[INFO] [stderr]      9:     0x65337d04cb86 - std[5c0eaf5403f5fa91]::panicking::default_hook::{closure#0}
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:292:27
[INFO] [stderr]     10:     0x65337d065721 - std[5c0eaf5403f5fa91]::panicking::default_hook
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:319:9
[INFO] [stderr]     11:     0x65337d06599b - std[5c0eaf5403f5fa91]::panicking::panic_with_hook
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:814:13
[INFO] [stderr]     12:     0x65337d04cc42 - std[5c0eaf5403f5fa91]::panicking::panic_handler::{closure#0}
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:687:13
[INFO] [stderr]     13:     0x65337d041c49 - std[5c0eaf5403f5fa91]::sys::backtrace::__rust_end_short_backtrace::<std[5c0eaf5403f5fa91]::panicking::panic_handler::{closure#0}, !>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/backtrace.rs:182:18
[INFO] [stderr]     14:     0x65337d04d5ad - __rustc[33ffaff69ac0afe3]::rust_begin_unwind
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:678:5
[INFO] [stderr]     15:     0x65337d0828fc - core[6b4415987d471b61]::panicking::panic_fmt
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/panicking.rs:80:14
[INFO] [stderr]     16:     0x65337d082672 - core[6b4415987d471b61]::result::unwrap_failed
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:1870:5
[INFO] [stderr]     17:     0x65337cbf4c80 - <core[6b4415987d471b61]::result::Result<cbindgen[c4998020b53ded2a]::bindgen::bindings::Bindings, cbindgen[c4998020b53ded2a]::bindgen::error::Error>>::expect
[INFO] [stderr]     18:     0x65337cc1097f - build_script_build[4b755768651828a7]::main
[INFO] [stderr]     19:     0x65337cc13313 - <fn() as core[6b4415987d471b61]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]     20:     0x65337cc143a6 - std[5c0eaf5403f5fa91]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[INFO] [stderr]     21:     0x65337cc10419 - std[5c0eaf5403f5fa91]::rt::lang_start::<()>::{closure#0}
[INFO] [stderr]     22:     0x65337d064a17 - <&dyn core[6b4415987d471b61]::ops::function::Fn<(), Output = i32> + core[6b4415987d471b61]::panic::unwind_safe::RefUnwindSafe + core[6b4415987d471b61]::marker::Sync as core[6b4415987d471b61]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/function.rs:287:21
[INFO] [stderr]     23:     0x65337d064a17 - std[5c0eaf5403f5fa91]::panicking::catch_unwind::do_call::<&dyn core[6b4415987d471b61]::ops::function::Fn<(), Output = i32> + core[6b4415987d471b61]::panic::unwind_safe::RefUnwindSafe + core[6b4415987d471b61]::marker::Sync, i32>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:575:43
[INFO] [stderr]     24:     0x65337d064a17 - std[5c0eaf5403f5fa91]::panicking::catch_unwind::<i32, &dyn core[6b4415987d471b61]::ops::function::Fn<(), Output = i32> + core[6b4415987d471b61]::panic::unwind_safe::RefUnwindSafe + core[6b4415987d471b61]::marker::Sync>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:543:19
[INFO] [stderr]     25:     0x65337d064a17 - std[5c0eaf5403f5fa91]::panic::catch_unwind::<&dyn core[6b4415987d471b61]::ops::function::Fn<(), Output = i32> + core[6b4415987d471b61]::panic::unwind_safe::RefUnwindSafe + core[6b4415987d471b61]::marker::Sync, i32>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panic.rs:359:14
[INFO] [stderr]     26:     0x65337d064a17 - std[5c0eaf5403f5fa91]::rt::lang_start_internal::{closure#0}
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/rt.rs:175:24
[INFO] [stderr]     27:     0x65337d064a17 - std[5c0eaf5403f5fa91]::panicking::catch_unwind::do_call::<std[5c0eaf5403f5fa91]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:575:43
[INFO] [stderr]     28:     0x65337d064a17 - std[5c0eaf5403f5fa91]::panicking::catch_unwind::<isize, std[5c0eaf5403f5fa91]::rt::lang_start_internal::{closure#0}>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panicking.rs:543:19
[INFO] [stderr]     29:     0x65337d064a17 - std[5c0eaf5403f5fa91]::panic::catch_unwind::<std[5c0eaf5403f5fa91]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/panic.rs:359:14
[INFO] [stderr]     30:     0x65337d064a17 - std[5c0eaf5403f5fa91]::rt::lang_start_internal
[INFO] [stderr]                                  at /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/rt.rs:171:5
[INFO] [stderr]     31:     0x65337cc0d791 - std[5c0eaf5403f5fa91]::rt::lang_start::<()>
[INFO] [stderr]     32:     0x65337cc14395 - main
[INFO] [stderr]     33:     0x7b24e53f21ca - <unknown>
[INFO] [stderr]     34:     0x7b24e53f228b - __libc_start_main
[INFO] [stderr]     35:     0x65337cb154f5 - _start
[INFO] [stderr]     36:                0x0 - <unknown>
[INFO] running `Command { std: "docker" "inspect" "875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0", kill_on_drop: false }`
[INFO] [stdout] 875627b651b159455609d81fec40d102014ab99798c9c23ddb786a07a3fe08f0
